package com.ovopark.organize.server.util;

import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 过滤文件后缀
 * @author root
 *
 */
public class FilePreFilter implements FileFilter{
	
	private String filePre;
	
	public void setFileSuf(String filePre){
		this.filePre = filePre;
	}
	
	public FilePreFilter(){}
	
	public FilePreFilter(String filePre){
		this.filePre = filePre;
	}
	
	@Override
	public boolean accept(File file) {
		if(file.isHidden()){
			return false;
		}else if(file.isFile() && file.getName().toLowerCase().startsWith(filePre)){
			return true;
		}
		return false;
	}

	public static File transferToFile(MultipartFile multipartFile) {
//        选择用缓冲区来实现这个转换即使用java 创建的临时文件 使用 MultipartFile.transferto()方法 。
		SimpleDateFormat format  = new SimpleDateFormat("ddHHmmss");
		File file = null;
		try {
			String originalFilename = multipartFile.getOriginalFilename();
			String[] filename = originalFilename.split("\\.");
			file=File.createTempFile(filename[0]+format.format(new Date()), filename[1]);
			multipartFile.transferTo(file);
			file.deleteOnExit();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return file;
	}


	public static File transferToZipFile(MultipartFile multipartFile) {
//        选择用缓冲区来实现这个转换即使用java 创建的临时文件 使用 MultipartFile.transferto()方法 。
		SimpleDateFormat format  = new SimpleDateFormat("ddHHmmss");
		File file = null;
		try {
			String originalFilename = multipartFile.getOriginalFilename();
			String[] filename = originalFilename.split("\\.");
			String name = "."+filename[1];
			//String name = ".zip";
			file=File.createTempFile(filename[0]+format.format(new Date()), name);
			multipartFile.transferTo(file);
			file.deleteOnExit();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return file;
	}
} 
